public class DataValidator {

	public boolean isInteger(String m) {
		try {
			Integer.parseInt(m);
			return true;
		} catch (Exception e) {
			return false;
		}

	}

	public boolean isDouble(String m) {
		try {
			Double.parseDouble(m);
			return true;
		} catch (Exception e) {
			return false;
		}

	}

	public boolean isFloat(String m) {
		try {
			Float.parseFloat(m);
			return true;
		} catch (Exception e) {
			return false;
		}
	}

	public boolean isString(String m) {
		return true;
	}

	public boolean isBoolean(String m) {
		try {
			Boolean.parseBoolean(m);
			return true;
		} catch (Exception e) {
			return false;
		}
	}

	public boolean isDate(String m) {
		String[] date = m.split("/");
		if (date.length != 3)
			return false;
		int day = Integer.parseInt(date[0]);
		int month = Integer.parseInt(date[1]);
		int year = Integer.parseInt(date[2]);

		if (day > 31 || day < 1)
			return false;
		if (month > 12 || month < 1)
			return false;
		if (year < 1900 || year > 2100)
			return false;
		return true;

	}

	public boolean isValidData(String dataType, String value) {
		if (dataType.equals("Integer"))
			return isInteger(value);
		else if (dataType.equals("Float"))
			return isFloat(value);
		else if (dataType.equals("Double"))
			return isDouble(value);
		else if (dataType.equals("Boolean"))
			return isBoolean(value);
		else if (dataType.equals("String"))
			return isString(value);
		else if (dataType.equals("Date"))
			return isDate(value);
		return false;

	}

	public static void main(String args[]) {
		DataValidator x = new DataValidator();
		System.out.println(x.isValidData("Date", "17/4/1992"));

	}

}
